config AVR32
	def_bool y
	# With EXPERT=n, we get lots of stuff automatically selected
	# that we usually don't need on AVR32.
	select EXPERT
	select HAVE_CLK
	select HAVE_OPROFILE
	select HAVE_KPROBES
	select HAVE_GENERIC_HARDIRQS
	select GENERIC_IRQ_PROBE
	select GENERIC_ATOMIC64
	select HARDIRQS_SW_RESEND
	select GENERIC_IRQ_SHOW
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	help
	  AVR32 is a high-performance 32-bit RISC microprocessor core,
	  designed for cost-sensitive embedded applications, with particular
	  emphasis on low power consumption and high code density.

	  There is an AVR32 Linux project with a web page at
	  http://avr32linux.org/.

config GENERIC_GPIO
	def_bool y

config STACKTRACE_SUPPORT
	def_bool y

config LOCKDEP_SUPPORT
	def_bool y

config TRACE_IRQFLAGS_SUPPORT
	def_bool y

config RWSEM_GENERIC_SPINLOCK
	def_bool y

config GENERIC_CLOCKEVENTS
	def_bool y

config RWSEM_XCHGADD_ALGORITHM
	def_bool n

config ARCH_HAS_ILOG2_U32
	def_bool n

config ARCH_HAS_ILOG2_U64
	def_bool n

config GENERIC_HWEIGHT
	def_bool y

config GENERIC_CALIBRATE_DELAY
	def_bool y

config GENERIC_BUG
	def_bool y
	depends on BUG

source "init/Kconfig"

source "kernel/Kconfig.freezer"

menu "System Type and features"

source "kernel/time/Kconfig"

config SUBARCH_AVR32B
	bool
config MMU
	bool
config PERFORMANCE_COUNTERS
	bool

config PLATFORM_AT32AP
	bool
	select SUBARCH_AVR32B
	select MMU
	select PERFORMANCE_COUNTERS
	select ARCH_REQUIRE_GPIOLIB
	select GENERIC_ALLOCATOR
	select HAVE_FB_ATMEL
	select HAVE_NET_MACB

#
# CPU types
#

# AP7000 derivatives
config CPU_AT32AP700X
	bool
	select PLATFORM_AT32AP
config CPU_AT32AP7000
	bool
	select CPU_AT32AP700X
config CPU_AT32AP7001
	bool
	select CPU_AT32AP700X
config CPU_AT32AP7002
	bool
	select CPU_AT32AP700X

# AP700X boards
config BOARD_ATNGW100_COMMON
	bool
	select CPU_AT32AP7000

choice
	prompt "AVR32 board type"
	default BOARD_ATSTK1000

config BOARD_ATSTK1000
	bool "ATSTK1000 evaluation board"

config BOARD_ATNGW100_MKI
	bool "ATNGW100 Network Gateway"
	select BOARD_ATNGW100_COMMON

config BOARD_ATNGW100_MKII
	bool "ATNGW100 mkII Network Gateway"
	select BOARD_ATNGW100_COMMON

config BOARD_HAMMERHEAD
	bool "Hammerhead board"
	select CPU_AT32AP7000
	select USB_ARCH_HAS_HCD
	help
	  The Hammerhead platform is built around an AVR32 32-bit microcontroller from Atmel.
	  It offers versatile peripherals, such as ethernet, usb device, usb host etc.

	  The board also incorporates a power supply and is a Power over Ethernet (PoE) Powered
	  Device (PD).

	  Additionally, a Cyclone III FPGA from Altera is integrated on the board. The FPGA is
	  mapped into the 32-bit AVR memory bus. The FPGA offers two DDR2 SDRAM interfaces, which
	  will cover even the most exceptional need of memory bandwidth. Together with the onboard
	  video decoder the board is ready for video processing.

	  For more information see: http://www.miromico.ch/index.php/hammerhead.html 

config BOARD_FAVR_32
	bool "Favr-32 LCD-board"
	select CPU_AT32AP7000

config BOARD_MERISC
	bool "Merisc board"
	select CPU_AT32AP7000
	help
	  Merisc is the family name for a range of AVR32-based boards.

	  The boards are designed to be used in a man-machine
	  interfacing environment, utilizing a touch-based graphical
	  user interface. They host a vast range of I/O peripherals as
	  well as a large SDRAM & Flash memory bank.

	  For more information see: http://www.martinsson.se/merisc

config BOARD_MIMC200
	bool "MIMC200 CPU board"
	select CPU_AT32AP7000
endchoice

source "arch/avr32/boards/atstk1000/Kconfig"
source "arch/avr32/boards/atngw100/Kconfig"
source "arch/avr32/boards/hammerhead/Kconfig"
source "arch/avr32/boards/favr-32/Kconfig"
source "arch/avr32/boards/merisc/Kconfig"

choice
	prompt "Boot loader type"
	default LOADER_U_BOOT

config	LOADER_U_BOOT
	bool "U-Boot (or similar) bootloader"
endchoice

source "arch/avr32/mach-at32ap/Kconfig"

config LOAD_ADDRESS
	hex
	default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y

config ENTRY_ADDRESS
	hex
	default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y

config PHYS_OFFSET
	hex
	default 0x10000000 if CPU_AT32AP700X=y

source "kernel/Kconfig.preempt"

config QUICKLIST
	def_bool y

config HAVE_ARCH_BOOTMEM
	def_bool n

config ARCH_HAVE_MEMORY_PRESENT
	def_bool n

config NEED_NODE_MEMMAP_SIZE
	def_bool n

config ARCH_FLATMEM_ENABLE
	def_bool y

config ARCH_DISCONTIGMEM_ENABLE
	def_bool n

config ARCH_SPARSEMEM_ENABLE
	def_bool n

source "mm/Kconfig"

config OWNERSHIP_TRACE
	bool "Ownership trace support"
	default y
	help
	  Say Y to generate an Ownership Trace message on every context switch,
	  enabling Nexus-compliant debuggers to keep track of the PID of the
	  currently executing task.

config NMI_DEBUGGING
	bool "NMI Debugging"
	default n
	help
	  Say Y here and pass the nmi_debug command-line parameter to
	  the kernel to turn on NMI debugging. Depending on the value
	  of the nmi_debug option, various pieces of information will
	  be dumped to the console when a Non-Maskable Interrupt
	  happens.

# FPU emulation goes here

source "kernel/Kconfig.hz"

config CMDLINE
	string "Default kernel command line"
	default ""
	help
	  If you don't have a boot loader capable of passing a command line string
	  to the kernel, you may specify one here. As a minimum, you should specify
	  the memory size and the root device (e.g., mem=8M, root=/dev/nfs).

endmenu

menu "Power management options"

source "kernel/power/Kconfig"

config ARCH_SUSPEND_POSSIBLE
	def_bool y

menu "CPU Frequency scaling"

source "drivers/cpufreq/Kconfig"

config CPU_FREQ_AT32AP
	bool "CPU frequency driver for AT32AP"
	depends on CPU_FREQ && PLATFORM_AT32AP
	default n
	help
	  This enables the CPU frequency driver for AT32AP processors.

	  For details, take a look in <file:Documentation/cpu-freq>.

	  If in doubt, say N.

endmenu

endmenu

menu "Bus options"

config PCI
	bool

source "drivers/pci/Kconfig"

source "drivers/pcmcia/Kconfig"

endmenu

menu "Executable file formats"
source "fs/Kconfig.binfmt"
endmenu

source "net/Kconfig"

source "drivers/Kconfig"

source "fs/Kconfig"

source "arch/avr32/Kconfig.debug"

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"
